﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace MyImaginaryFriends_Redux.Screens.GamePlayScreen_Classes
{
        enum TileCollision//this will only be used by the Colliding tile struct
        {
            Passable = 0,
            Impassable = 1,
            Platform = 2,
            SpawnPoint = 3,
            Ladder = 4,
            DiagonalLeftStairs = 5,
            DiagonalRightStairs = 6,
            GateTile = 7,

            BedTile = 8,

            #region Door Tiles. they'll be named as follows : Region_DoorNumber or Region_RegionDoorLeadsTo (First_Door1 || First_toSecond)
            StartingRoom_To_Hallway = 20,

            Hallway_To_StartingRoom = 21,
            Hallway_To_RoomA = 22,
            Hallway_To_RoomB = 23,
            Hallway_To_RoomD = 24,

            RoomA_To_Hallway = 25,
            RoomA_To_PaintingRoom1 = 35,
            RoomA_To_BlockRoom2 = 36,

            PaintingRoom1_To_RoomA = 42,
            PaintingRoom1_To_PaintingRoom2 = 43,

            PaintingRoom2_To_PaintingRoom1Fall = 44,
            PaintingRoom2_To_PaintingRoom1 = 47,
            PaintingRoom2_To_PaintingRoom3 = 45,

            PaintingRoom3_To_PaintingRoom2Fall = 48,
            PaintingRoom3_To_PaintingRoom1 = 49,
            PaintingRoom3_To_GateRoom = 50,

            GateRoom_To_PaintingRoom4 = 51,

            PaintingRoom4_To_MusicBoxRoom = 52,
            PaintingRoom4_To_GateRoom = 53,

            MusicBoxRoom_To_RoomA = 54,

            RoomB_To_Hallway = 26,
            RoomB_To_RoomC = 27,

            RoomC_To_RoomB = 28,

            RoomD_To_Hallway = 29,
            RoomD_To_GateRoom = 30,
            RoomD_To_BlockRoom1 = 37,

            BlockRoom1_To_RoomD = 38,
            BlockRoom1_To_BlockRoom2 = 39,

            BlockRoom2_To_BlockRoom1 = 40,
            BlockRoom2_To_RoomA = 41,

            GateRoom_To_FriendRoom = 31,//this is also the entrance of the room.
            GateRoom_To_RoomD = 33,

            FriendRoom_To_GateRoom = 32,
            FriendRoom_To_RoomD = 34,

            #endregion

            #region Triggered Tiles. Same Deal as the door, except we'll start at 100

            RoomA_GateTrigger = 100,
            GateRoom_LeverTrigger = 101,

            RoomB_DoorTrigger = 102,

            RoomD_PlateTrigger_To_BlockRoom1Door = 103,

            BlockRoom2_Trigger_To_RoomAGate = 104,


            #endregion
        }

        struct CollidingTile
        {
            public TileCollision Collision;

            public const int i_TileWidth = 32;
            public const int i_TileHeight = 32;

            public CollidingTile(TileCollision collision)
            {
                Collision = collision;
            }

            public int GetWidth()
            {
                return i_TileWidth;
            }

            public int GetHeight()
            {
                return i_TileHeight;
            }
        }

    
}
